/** 单个数据通道的配置（对应界面中"通道名称、单位、范围、颜色"等） */
export interface Channel {
  name: string;        // 通道名称（如"补偿后导高"）
  unit: string;        // 显示单位（如"mm""g"）
  min: number;         // 数值范围最小值
  max: number;         // 数值范围最大值
  color: string;       // 通道颜色（如"#91CC75"）
  selected: boolean;   // 是否选中该通道
  type?: 'line' | 'bar'; // 图表类型（默认折线）
}

/** 坐标轴配置项（支持多轴） */
export interface AxisConfig {
  type?: 'category' | 'value' | 'time' | 'log';
  name?: string;
  [key: string]: any; // 其他坐标轴配置
}

/** 单个 Grid 的配置（对应一个子图表区域） */
export interface GridConfig {
  id: string;          // Grid 唯一标识
  top: string | number;// Grid 顶部位置
  bottom: string | number; // Grid 底部位置
  series: any[]; // 该 Grid 下的系列
  xAxis?: AxisConfig;  // 该 Grid 的 X 轴
  yAxis?: AxisConfig;  // 该 Grid 的 Y 轴
}

/** 图表整体配置（包含多 Grid） */
export interface ChartConfig {
  title?: string;      // 图表总标题
  width?: number | string;
  height?: number | string;
  xAxisData?: any[];   // 共享的 X 轴数据（如距离、时间）
  tooltip?: any;       // tooltip 全局配置
  legend?: any;        // legend 全局配置
}

/** 实时数据结构 */
export interface RealtimeData {
  X: string[];         // X轴数据（距离或时间）
  X1: number[];        // 拉出值数据1

  X2: number[];        // 拉出之2
  Y1: number[];        // 导高数据1

  Y2: number[];        // 导高2
  SpeedList: number[]; // 速度数据
  MoHaoList1: number[]; // 磨耗表数据1
  MoHaoList2?: number[]; // 磨耗表数据2
  WearList?: number[]; // 磨耗数据（旧字段，保留兼容）
  fPressList1?: number[]; // 接触力数据1
  fPressList2?: number[]; // 接触力数据2
  fVibrationList1?: number[]; // 加速度数据1
  fVibrationList2?: number[]; // 加速度数据2
  fVot?: number[]; // 网压数据
  SupportList?: any[]; // 支柱点数据
  SuspensionList?: any[]; // 吊悬点数据
}

/** 标记点数据结构 */
export interface MarkPoint {
  coord: [string | number, number];
}

/** 参数配置结构 */
export interface ParamsConfig {
  xdefault: number;    // 拉出值基准
  ydefault: number;    // 导高基准
  yvariable: number;   // 导高预警偏差
  xpolice: number;     // 拉出值超限值
  ypolice: number;     // 导高超限值
}

/** 报警数据结构 */
export interface AlarmData {
  id: number;
  zig: number;         // 拉出值
  hei: number;         // 导高
  status: number;      // 状态：1-正常，2-预警，3-超限
  realpol: string;     // 杆号
  kmv: string;         // 公里标
  speed: number;       // 速度
}

/** 位置信息结构 */
export interface PositionData {
  LineName?: string;   // 站区
  POL?: string;        // 杆号
  KMV?: string;        // 公里标
  STN?: string;        // 站名
  TUN?: string;        // 隧道
  Updown?: string;     // 上下行
  SPD?: number;        // 速度
  lastUpdate?: number; // 最后更新时间
}